A Few Speed Tips:
=================
- Shut down all other open applications. Turn off AntiVirus software, especially if it has File System Realtime Protection. But, turn this back on when you're done playing with 1964 to keep your machine protected. 1964 contains no spyware or adware, and these days, we should get a medal for that.
- use Windows 2000/XP instead of 98.
- Use 16 bit color


For Advanced Users:
===================

From the Edit menu you can access Game ini settings. These are settings that get saved into the 1964.ini file. The following settings are the defaults. They are the optimal settings for balanced speed and compatibility. Most games will work with them:

-------------------------------------------------
Expansion Pak: No
Game Save Type: All Used Types
CPU Emulator: Dyna-Compiler
TLB: yes
DMA in Segments: Yes
Self-Modifying Code: Protect Memory
EEPROM Size: 2KB
Register Caching: Yes
Counter Factor: 2
FPU Hack: Yes.
Max VI Limit: Auto Sync (No limit for full speed)
Link 4KB Blocks: Yes
Advanced Analysis: Yes
Use 32 Bit: No
-------------------------------------------------

When you modify settings in the Game ini Settings window and click the OK button, your changes modify the ini settings of the selected game.

Expansion Pak
=============
Well, leaving this off will only allocate 4MB for RDRAM, while turning on the expansion pak will allocate 8MB. Majora's Mask, for instance, requires it on.


CPU Emulator
============
Dyna-Compiler (dynarec) refers to the dynamic recompiling engine. You will usually want to leave it on. If you want information on how it works you can download my doc here: http://1964emu.emulation64.com/download/1964_Recompiler.zip.


TLB (Translation Look-aside Buffer)
===================================
TLB is how virtual addresses are converted to physical ones quickly. The N64 uses TLB. With our new fast tlb method, it is unlikely that turning this off will help speed. Once again, however, there are the rare cases (such as Xena) that will not work with the TLB enabled.


Register Caching
================
On is faster. It is an advanced part of the dynarec, and briefly explained in my compiler doc.


Counter Factor (CF)
===================
The Counter Factor is a multiple that affects the rate of the COUNT register. It basically fools the virtual machine into thinking it has executed more (or less) cycles than it actually has. The advantage of this is you can get more speed and better timing by tweaking this. Of course, screwing with the timing on the n64 can have adverse affects. So, it's interesting to play with. CF6, CF7 and CF8 are in most cases not stable and are choppy.


FPU Hack
========
Turning this off can get a tiny bit more speed out of the thing, but it is recommended that you leave this on. Interestingly, some a few games require it off (Tom&Jerry). The FPU Hack option is an additional check in the FPU to test for what is known as a Coprocessor Unusable Exception. Refer to MIPS documentation for information about it if you are interested.


DMA in Segments
===============
Turning this off can get you some more speed. Most games will not matter with this setting, but a few require it on, while a few others need it off. Tweak away.


Self-Modifying Code - Use "Protect Memory" when you can
===================
Self Modifying code is rom game code or other binary data that is changed at an address for one reason or another, when it was once something else. You can't emulate the old instructions since the memory has changed, so you need to detect when this occurs. Protect Memory is the fastest method for detection. Of course, No_Check should be fastest, but only some games like Mario and MarioKart will work with No Check, because they don't have self-modifying code.

Check Block+DMA is the slowest, because it checks every DWORD in the block of code for a change. It also checks for modifications in the DMA. So, Protect Memory is the way to go, but if a game isn't working with it, try one of the slower methods. The other methods (like "Check DWORD") just check the first few bits (DWORD) in the block for a change.


Link 4K Blocks - "Yes" = Faster
==============
This method will link together blocks of native x86 compiled code within a 4KB page of the VM's code. This means that when a MIPS jump, branch or return from exception is encountered whose target is in the same 4KB-aligned boundary, it does not need to return to the main engine loop to fetch the next block.


Advanced Analysis - "Yes" = faster
===============
Turn this on to enable the analysis compiler pass.
This is an additional pass on the instructions of a block of game code.
By analyzing what's ahead, the 1964 compiler is able to do more optimizations.

Assume 32 bit - "Yes" = faster. Default = Off.
=============
There are several games that do not exploit the 64bit architecture of the n64. This option, when set to "Yes", improves speed by reducing register pressure and by avoiding unnecessary sign-extending. Be careful with this option, as some game saves might behave oddly or emulation will not work at all. Leave this option off for maximum compatibility, but turn it on if you like to tweak.

-schibo